/**
 * 因为 desk 的动画比较复杂, 而且要协调 footer 和 content 两个组件,
 * 我这里单独把动画参数放这个类里面.
 */
class DeskAnimation {
	icons = ['loadout', 'codex', 'navi'];
	// 当前指的是哪个 icon, 索引
	index = 0;
	lastIndex = 0;
	// 该页的动画时间, 如果翻页则重置
	time = 0;
	baseTime = Date.now(); // 翻页时设置为 now

	// 动画参数记录:
	// footer 的 shape.offset, 它的变化影响到 content 里面的裁剪区域
	footerShapeOffset = 0;

	/** @type {function} */ onFooterSwitch = null;
	footerSwitch() {
		this.baseTime = Date.now();
		this.time = 0;
		this.lastIndex = this.index;
		this.index = (this.index + 1) % this.icons.length;
		this.onFooterSwitch && this.onFooterSwitch();
	}
}

export default DeskAnimation;
